﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QuanLyKho.GUI.Library;
using QuanLyKho.DataAccess;
using QuanLyKho.Common;

namespace QuanLyKho.GUI
{
    public partial class frmlistSupplier : Form
    {
        private static long ID = 0;
        public frmlistSupplier()
        {
            InitializeComponent();
        }
        public frmlistSupplier(long _ID)
        {
            InitializeComponent();
            txtCode.Focus();
            ID = _ID;
            binDataOneSupplier(ID);
        }
        private void binDataOneSupplier(long _ID)
        {
            List<clsListSupplier> lisSupplier = new clsDataAccessListSupplier().ListSupplierSelectOneWithId(_ID);
            if (lisSupplier.Count > 0)
            {
                txtCode.Text = lisSupplier[0].Code;
                txtName.Text = lisSupplier[0].Name;
                txtDes.Text = lisSupplier[0].Des;
                txtAddress.Text = lisSupplier[0].Address;
                txtTel.Text = lisSupplier[0].Tel;
                txtFax.Text = lisSupplier[0].Fax;
                txtWebsite.Text = lisSupplier[0].Website;
                txtEmail.Text = lisSupplier[0].Email;
                txtManager.Text = lisSupplier[0].Manager;
                txtPosition.Text = lisSupplier[0].Position;
                txtContactTel.Text = lisSupplier[0].ContactTel;
                txtContactFax.Text = lisSupplier[0].ContactFax;
                txtContactEmail.Text = lisSupplier[0].ContactEmail;
            }
        }              

        public void resfesh()
        {
            
            txtCode.Text = "";
            txtName.Text = "";
            txtDes.Text = "";
            txtAddress.Text = "";
            txtTel.Text = "";
            txtFax.Text = "";
            txtWebsite.Text = "";
            txtEmail.Text = "";
            txtManager.Text = "";
            txtPosition.Text = "";
            txtContactTel.Text = "";
            txtContactFax.Text = "";
            txtContactEmail.Text = "";

        }

        private void butSave_Click(object sender, EventArgs e)
        {
            string Code = txtCode.Text;
            string Name = txtName.Text;
            string Des = txtDes.Text;
            string Address = txtAddress.Text;
            string Tel = txtTel.Text;
            string Fax = txtFax.Text;
            string Website = txtWebsite.Text;
            string Email = txtEmail.Text;
            string Manager = txtManager.Text;
            string Position = txtPosition.Text;
            string ContactTel = txtContactTel.Text;
            string ContactFax = txtContactFax.Text;
            string ContactEmail = txtContactEmail.Text;

            DateTime Created = DateTime.Now;
            if (Code.Length < 1)
            {
                new clsLibrary().runLoading("Chưa điền mã nhà cung cấp!", 0);
                txtCode.Focus();
                return;
            }
            else
            {
                if (Code.Length > 255)
                {
                    new clsLibrary().runLoading("Mã nhà cung cấp không lớn hơn 255 ký tự.", 0);
                    txtCode.Focus();
                    return;
                }
            }
            if (Name.Length < 1)
            {
                new clsLibrary().runLoading("Chưa điền tên nhà cung cấp!", 0);
                txtName.Focus();
                return;
            }
            else
            {
                if (Name.Length > 255)
                {
                    new clsLibrary().runLoading("Tên nhà cung cấp không lớn hơn 255 ký tự.", 0);
                    txtName.Focus();
                    return;
                }
            }
            if (Address.Length > 255)
            {
                new clsLibrary().runLoading("Địa chỉ nhà cung cấp không lớn hơn 255 ký tự.", 0);
                txtAddress.Focus();
                return;
            }
            if (Tel.Length < 1)
            {
                new clsLibrary().runLoading("Chưa điền số điện thoại nhà cung cấp!", 0);
                txtTel.Focus();
                return;
            }
            else
            {
                if (Tel.Length > 255)
                {
                    new clsLibrary().runLoading("Số điện thoại nhà cung cấp không lớn hơn 255 ký tự.", 0);
                    txtTel.Focus();
                    return;
                }
            }
            if (Fax.Length > 255)
            {
                new clsLibrary().runLoading("Fax không lớn hơn 255 ký tự.", 0);
                txtFax.Focus();
                return;
            }
            if (Website.Length > 255)
            {
                new clsLibrary().runLoading("Họ tên không lớn hơn 255 ký tự.", 0);
                txtWebsite.Focus();
                return;
            }
            if (Email.Length < 1)
            {
                new clsLibrary().runLoading("Email nhà cung cấp không được trống.", 0);
                txtEmail.Focus();
                return;
            }
            else
            {
                if (Email.Length > 255)
                {
                    new clsLibrary().runLoading("Email không lớn hơn 255 ký tự.", 0);
                    txtEmail.Focus();
                    return;
                }
            }
            if (Manager.Length < 1)
            {
                new clsLibrary().runLoading("Họ tên không được trống.", 0);
                txtManager.Focus();
                return;
            }
            else
            {
                if (Manager.Length > 255)
                {
                    new clsLibrary().runLoading("Họ tên không lớn hơn 255 ký tự.", 0);
                    txtManager.Focus();
                    return;
                }
            }

            if (Position.Length < 1)
            {
                new clsLibrary().runLoading("Họ tên không được trống.", 0);
                txtPosition.Focus();
                return;
            }
            else
            {
                if (Position.Length > 255)
                {
                    new clsLibrary().runLoading("Họ tên không lớn hơn 255 ký tự.", 0);
                    txtPosition.Focus();
                    return;
                }
            }
            if (ContactTel.Length < 1)
            {
                new clsLibrary().runLoading("Họ tên không được trống.", 0);
                txtContactTel.Focus();
                return;
            }
            else
            {
                if (ContactTel.Length > 255)
                {
                    new clsLibrary().runLoading("Họ tên không lớn hơn 255 ký tự.", 0);
                    txtContactTel.Focus();
                    return;
                }
            }
            if (ContactFax.Length > 255)
            {
                new clsLibrary().runLoading("Họ tên không lớn hơn 255 ký tự.", 0);
                txtContactFax.Focus();
                return;
            }
            if (ContactEmail.Length < 1)
            {
                new clsLibrary().runLoading("Họ tên không được trống.", 0);
                txtContactEmail.Focus();
                return;
            }
            else
            {
                if (ContactEmail.Length > 255)
                {
                    new clsLibrary().runLoading("Họ tên không lớn hơn 255 ký tự.", 0);
                    txtContactEmail.Focus();
                    return;
                }
            }
            if (Des.Length > 255)
            {
                new clsLibrary().runLoading("Họ tên không lớn hơn 255 ký tự.", 0);
                txtDes.Focus();
                return;
            }

            clsListSupplier obj = new clsListSupplier();
            obj.Code = Code;
            obj.Name = Name;
            obj.Des = Des;
            obj.Address = Address;
            obj.Tel = Tel;
            obj.Fax = Fax;
            obj.Website = Website;
            obj.Email = Email;
            obj.Manager = Manager;
            obj.Position = Position;
            obj.ContactTel = ContactTel;
            obj.ContactFax = ContactFax;
            obj.ContactEmail = ContactEmail;
            if (ID < 1)
            {
                if (new clsDataAccessListSupplier().AddNew(obj) > 0)
                {
                    new clsLibrary().runLoading("Đã thêm mới nhà cung cấp! ", 2);
                    resfesh();
                }
                else
                    new clsLibrary().runLoading("Có lỗi xảy ra khi thêm mới nhà cung cấp!", 0);
            }
            else
            {
                obj.ID = ID;
                if (new clsDataAccessListSupplier().Update(obj) > 0)
                {
                    new clsLibrary().runLoading("Đã sửa thông tin nhà cung cấp! ", 2);
                    ID = 0;
                }
                else
                    new clsLibrary().runLoading("Có lỗi xảy ra khi sửa thông tin nhà cung cấp!", 0);
            }



        }

        private void frmlistSupplier_Load(object sender, EventArgs e)
        {

        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void butAddNew_Click(object sender, EventArgs e)
        {
            resfesh();
        }
        //Chỉ nhập số và ký tự điều khiển
        private void txtContactFax_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }
        //Chỉ nhập số và ký tự điều khiển
        private void txtFax_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void butAddNew_Click_1(object sender, EventArgs e)
        {
            resfesh();
        }

        private void txtContactTel_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void txtTel_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }




    }
}
